﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars;
using Lola.DTO.Grilla;
using Lola.Servicio;

namespace Lola.Vista.LimpiezaSuministroTaller
{
    public partial class xfrmMicrosenSector : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        private String _sector = String.Empty;
        private String _galpon = String.Empty;
        private String _usuario = String.Empty;
        private List<dtoSectorMicro> _MicrosenSector = new List<dtoSectorMicro>();

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sector"></param>
        public xfrmMicrosenSector(String sector, String galpon, String usuario            )
        {
            _galpon = galpon;    
            _sector = sector;
            InitializeComponent();
            this.barSgalpon.Caption = galpon;
            this.barsUsuario.Caption = this._usuario;
            this.barSSector.Caption = sector;

            this.gridControl1.DataSource = _MicrosenSector;
            this.CargarGrilla();
        }

        /// <summary>
        /// Privada para que nadie la cree sin pasarle sector
        /// </summary>
        private xfrmMicrosenSector()
        {
            InitializeComponent();

        }

        private void btnIngresoaSector_ItemClick(object sender, ItemClickEventArgs e)
        {
            xfrmSectorIngresoMicro frm = new xfrmSectorIngresoMicro(this._galpon, this._sector);
            frm.ShowDialog();
            this.CargarGrilla();
        }

        private void btnEgresodeSector_ItemClick(object sender, ItemClickEventArgs e)
        {
            String codigoServicio = this.ObtenerServicioSeleccionado();
            if (!codigoServicio.Equals(String.Empty))
            {
                Sistema.getInstancia().RegistrarSalidadeSector(this._galpon, this._sector, codigoServicio);
                MessageBox.Show("Salida exitosa de " + _sector, "Salida de " + this._sector, MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.CargarGrilla();
            }
            else
            {
                MessageBox.Show("Debe seleccionar una unidad para sacar del sector", "Salida de " + _sector, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }

        private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
        {
            string codigoServicio= this.ObtenerServicioSeleccionado();

            if (codigoServicio.Equals(string.Empty))
            {
                MessageBox.Show("Debe seleccionar el Servicio", "Incidencia",
                MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
                Lola.Vista.Comunes.xfrmIncidencias frm = new Lola.Vista.Comunes.xfrmIncidencias(this._sector, codigoServicio, this._galpon);
                frm.ShowDialog();
               
            }
            this.CargarGrilla();
        }

        private void CargarGrilla()
        {
            this._MicrosenSector = Servicio.Sistema.getMicrosPorSector(this._galpon, this._sector);
            this.gridControl1.DataSource = _MicrosenSector;
        }

        /// <summary>
        /// Obtiene el micro seleccionado en la grilla...
        /// </summary>
        /// <returns></returns>
        private String ObtenerServicioSeleccionado()
        {
            String resultado = String.Empty;
            try
            {
                resultado = ((Lola.DTO.Grilla.dtoSectorMicro)this.gridView1.GetRow(this.gridView1.GetSelectedRows()[0])).CodigoServicio;
            }
            catch (Exception)
            { }
            return resultado;
        }

        private void btnIncidenciaAlta_ItemClick(object sender, ItemClickEventArgs e)
        {
            String codigoServicio = this.ObtenerServicioSeleccionado();

            if (codigoServicio.Equals(string.Empty))
            {
                MessageBox.Show("Debe seleccionar el Servicio", "Incidencia",
                MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                
            }
            else
            {
                Lola.Vista.Comunes.xfrmIncidenciasABMC frm = new Lola.Vista.Comunes.xfrmIncidenciasABMC(codigoServicio, this._galpon, this._sector);
                frm.ShowDialog();
            }
        }
    }
}